/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package generadorcommun;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Martin
 */
public class GuardarArchivo {

    private static GuardarArchivo instance;
    private FileWriter fw;

    private GuardarArchivo() {
    }

    public static GuardarArchivo getInstance() {
        if (instance == null) {
            instance = new GuardarArchivo();
        }
        return instance;
    }

    public FileWriter getFw() {
        return fw;
    }

    public void setFw(FileWriter fw) {
        this.fw = fw;
    }

    public void persistirClase(List<String> clase, String nomClase, String nombre) {
        try {
            File dir = new File("C:/" + nombre + "/src/" + nombre + "/" + nomClase + ".java");
            persistirArchivo(clase, dir);
        } catch (Exception e) {
            throw new UnsupportedOperationException("Not supported yet.");
        }
    }

    public void persistirProyecto(List<String> clase, File dir) {
        try {
            persistirArchivo(clase, dir);
        } catch (Exception e) {
            throw new UnsupportedOperationException("Not supported yet.");
        }
    }

    public void persistirArchivo(List<String> archivo, File file) {
        try {
            fw = new FileWriter(file);
            BufferedWriter bw = new BufferedWriter(fw);
            PrintWriter salida = new PrintWriter(bw);
            for (String text : archivo) {
                salida.println(text);
            }
            salida.close();
        } catch (Exception e) {
            throw new UnsupportedOperationException("Not supported yet.");
        }
    }

    public List<String> leerTxt(File archivo) throws IOException {
        ArrayList<String> text = new ArrayList<String>();
        try {
            FileReader fr = new FileReader(archivo);
            BufferedReader entrada = new BufferedReader(fr);
            String s;
            while ((s = entrada.readLine()) != null) {
                text.add(s);
            }
        } catch (java.io.FileNotFoundException fnfex) {
            System.out.println("NO SE ENCONTRO EL ARCHIVO ");
        }
        return text;
    }

    public void guardarProyectos(String nombreP) throws IOException {
        File file = new File("RegistroProyactos/proyectos.txt");
        List<String> leer = leerTxt(file);
        fw = new FileWriter(file);
        BufferedWriter bw = new BufferedWriter(fw);
        PrintWriter salida = new PrintWriter(bw);
        for (String text : leer) {
            salida.println(text);
        }
        salida.println(nombreP);
        salida.close();
    }

    public void guardarRegistroClases(String nombreP ,String nombreClase , String tipo , List<String> pks) throws IOException {
        File file = new File("RegistroClasesProyacto/"+nombreP+".txt");
        List<String> leer = leerTxt(file);
        fw = new FileWriter(file);
        BufferedWriter bw = new BufferedWriter(fw);
        PrintWriter salida = new PrintWriter(bw);
        for (String text : leer) {
            salida.println(text);
        }
        String linea = nombreClase+"|"+tipo;
        for (String pk : pks){
            linea= linea+"|"+pk;
        }
        salida.println(linea);
        salida.close();
    }
}
